Адміністрація вирішила продати даний сайт. За детальною інформацією звертайтесь за адресою: rozrahu@gmail.com

Рекурсивні алгоритми

Інформація про навчальний заклад

ВУЗ:
Національний технічний університет України Київський політехнічний інститут
Інститут:
Не вказано
Факультет:
ЗІ
Кафедра:
Не вказано

Інформація про роботу

Рік:
2022
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Програмування

Частина тексту файла

НАЦІОНАЛЬНИЙ ТЕХНІЧНИЙ УНІВЕРСИТЕТ УКРАЇНИ “КИЇВСЬКИЙ ПОЛІТЕХНІЧНИЙ ІНСТИТУТ імені ІГОРЯ СІКОРСЬКОГО” ЗВІТ з лабораторної роботи №2 з навчальної дисципліни “Програмування складних алгоритмів” Варіант №3 Тема: Рекурсивні алгоритми. Мета роботи: Метою лабораторної роботи є набуття практичних навичок з рекурсивними функціями. Методичні вказівки Лабораторна робота спирається на знаннях отриманих при вивченні наступних питань лекції: – Поняття рекурсії. – Поняття прямої i непрямої рекурсiї. Завдання до лабораторної роботи: Розробити програми згідно з алгоритмом з використанням рекурсивної функції та без використання рекурсивної функції. Оцінити час виконання та складність алгоритму. Завдання 3 варіанту: / Код завдання: #include <stdio.h> #include <windows.h> double P(int n) {   if (n == 1) {     return 1.0/n;   }   else {     double y = 1.0/n * P(n-1);     return y;     } } //------------wirh rekursion--------------- int main(void) {   long time1, time2;     int n, z;   double y;   printf("Enter N: ");   scanf("%d", &n);   printf("How do u want to solve task? \n1.With rekursion \n2.Without rekursion\n");   scanf("%d", &z);   if (z == 1) {     time1 = GetTickCount()  ;     y = P(n);     if (n > 500) {         printf("%.3000f", y);     }     else if (n > 100) {         printf("%.1000f", y);     }     else if(n > 10){       printf("%.30f", y);       }     else {       printf("%f", y);     }     time1 = GetTickCount() - time1;     printf("\nProgram was working %ld milliseconds", time1);   }     //-------------without rekursion-----------   else {     double a = 1;     time1 = GetTickCount();     for(int i = 1; i < n+1; i++) {       a = a * (1.0 / i);     }     if (n > 500) {         printf("%.3000f", a);     }     else if (n > 100) {         printf("%.1000f", a);     }     else if(n > 10){       printf("\n%.30f", a);       }     else {       printf("\n%f", a);     }     time1 = GetTickCount() - time1;     printf("\nProgram was working %ld milliseconds", time1);   }   return 0; } Результати: / / Висновки: Під час даної лабораторної роботи було набуто практичних навичок з рекурсивними функціями. Написано програму яка виконує завдання за допомогою рекурсії і без неї. Бачимо що по часу роботи програми методи майже не відрізняються тобто часова складність однакова. Складність алгоритму: для мене було легше рішити це завдання без рекурсії, але кожен для себе вибирає метод легший для нього
Антиботан аватар за замовчуванням

06.05.2023 11:05

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини